package br.cs.correspodente.DAO;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import br.cs.correspodente.beans.Vendedor;
import br.cs.correspodente.conexao.FactoryConnection;
import br.cs.correspodente.factory.FactoryList;
import br.cs.correspodente.interfaces.IvendedorDAO;

public class VendedorDAO implements IvendedorDAO{
	
	
	@Override
	public void add(Vendedor vendedor){
		EntityManager em = FactoryConnection.getInstance().criaConexaoEntity();
		em.getTransaction().begin();
		em.persist(vendedor);
		em.flush();
		em.getTransaction().commit();
		em.close();
	}



	@Override
	public void dell(int id) {
		// TODO Auto-generated method stub
		
	}



	@Override
	public void up(Vendedor vendedor) {
		// TODO Auto-generated method stub
		
	}



	@Override
	public List<Vendedor> getAll() {
		// TODO Auto-generated method stub
		return null;
	}



	@Override
	public Vendedor getById(int id) {
		// TODO Auto-generated method stub
		return null;
	}



	@Override
	public List<Vendedor> getByNome(String nome) {	
		List<Vendedor> vendedores = FactoryList.createListVendedor();
		EntityManager em = FactoryConnection.getInstance().criaConexaoEntity();
		em.getTransaction().begin();
		Query query = em.createNamedQuery("getBynome",Vendedor.class);
		query.setParameter("nome","%"+nome+"%");
		vendedores = query.getResultList();
		em.close();
		return vendedores;
	}



	@Override
	public List<Vendedor> getByCPF(String cpf) {
		List<Vendedor> vendedores = FactoryList.createListVendedor();
		EntityManager em = FactoryConnection.getInstance().criaConexaoEntity();
		em.getTransaction().begin();
		Query query = em.createNamedQuery("getByCpf",Vendedor.class);
		query.setParameter("cpf","%"+cpf+"%");
		vendedores = query.getResultList();
		em.close();
		return vendedores;
	}
	@Override
	public List<Vendedor> getByCnpj(String cnpj) {
		List<Vendedor> vendedores = FactoryList.createListVendedor();
		EntityManager em = FactoryConnection.getInstance().criaConexaoEntity();
		em.getTransaction().begin();
		Query query = em.createNamedQuery("getByCnpj",Vendedor.class);
		query.setParameter("cnpj","%"+cnpj+"%");
		vendedores = query.getResultList();
		em.close();
		return vendedores;
	}



}
